<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryRef" :inline="true">
      <el-form-item label="">
        <el-select v-model="queryParams.railwayName" placeholder="线名" clearable style="width: 140px">
          <el-option v-for="dict in railwayNameobj" :key="dict.railwayName" :label="dict.railwayName" :value="dict.id" />
        </el-select>
      </el-form-item>
      <el-form-item label="">
        <el-input v-model="queryParams.tunnelId" placeholder="隧道号" clearable style="width: 140px"></el-input>
      </el-form-item>
      <el-form-item label="">
        <el-input v-model="queryParams.segmentUnitCode" placeholder="节段单元编码" clearable style="width: 140px"></el-input>
      </el-form-item>
      <el-form-item label="">
        <el-input v-model="queryParams.segmentStartingMileageStr" placeholder="节段起点里程" clearable style="width: 140px"></el-input>
      </el-form-item>
      <el-form-item label="">
        <el-input v-model="queryParams.segmentDestinationMileageStr" placeholder="节段终点里程" clearable style="width: 140px"></el-input>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="getList" style="width: 90px">查询</el-button>
        <el-button @click="resetQuery" style="width: 90px">重置</el-button>
        <el-button type="primary" @click="handleQuery" style="width: 90px">导出</el-button>
        <el-button type="primary" @click="handleAdd" style="width: 90px">新增</el-button>
      </el-form-item>
    </el-form>
    <!-- 表格数据 -->
    <el-table v-loading="loading" :data="railList" height="62vh" border @selection-change="selectiontab">
      <el-table-column type="selection" label="全选" width="50" />
      <el-table-column label="序号" type="index" width="80" />
      <el-table-column label="线名" prop="railwayName" min-width="80" />
      <el-table-column label="隧道号" prop="tunnelCode" min-width="80" />
      <el-table-column label="隧道名" prop="tunnelName" min-width="80" />
      <el-table-column label="节段单元编码" prop="segmentUnitCode" min-width="80" />
      <el-table-column label="节段起点里程" prop="segmentStartingMileageStr" min-width="80" />
      <el-table-column label="节段终点里程" prop="segmentDestinationMileageStr" min-width="80" />
      <el-table-column label="初期支护" prop="initialStageShoring" min-width="80" />
      <el-table-column label="节段衬砌类型" prop="segmentLiningType" min-width="80" />
      <el-table-column label="节段衬砌式样" prop="segmentLiningStyle" min-width="80" />
      <el-table-column label="节段衬砌图号" prop="segmentLiningNum" min-width="80" />
      <el-table-column label="拱圈材质" prop="archRingTexture" min-width="80" />
      <el-table-column label="拱圈材质厚度" prop="archRingThickness" min-width="80" />
      <el-table-column label="边墙材质" prop="flankWallTexture" min-width="80" />
      <el-table-column label="边墙厚度" prop="flankWallThickness" min-width="80" />
      <el-table-column label="直接数据" min-width="110">
        <template #default="scope">
          <div class="buttontext">
            <el-button link type="primary" @click="parameter(scope.row)">参数</el-button>
            <el-button link type="primary" @click="meansFun(scope.row)">资料</el-button>
          </div>
        </template>
      </el-table-column>
      <el-table-column label="关联数据" min-width="210">
        <template #default="scope">
          <div class="buttontext">
            <el-button link type="primary" @click="resumeUpdate(scope.row)">作业履历</el-button>
            <el-button link type="primary" @click="deviceProblem(scope.row)">设备问题</el-button>
            <el-button link type="primary" @click="businessFinance(scope.row)">业财</el-button>
          </div>
        </template>
      </el-table-column>
      <el-table-column label="操作" min-width="80">
        <template #default="scope">
          <div class="buttontext">
            <el-button link type="primary" @click="handDelete(scope.row.id)">删除</el-button>
          </div>
        </template>
      </el-table-column>
    </el-table>
    <!-- 添加或修改用户配置对话框 -->
    <el-dialog :title="title" v-model="open" width="1300px" append-to-body>
      <el-form ref="userRef" :model="form" :rules="rules" label-width="80px" :inline="true">
        <div class="divflex">
          <span class="leftx"></span>
          <span class="mainz">位置</span>
          <span class="rightx"></span>
        </div>
        <el-row>
          <el-col :span="8">
            <el-form-item label="单位名称" prop="unitId">
              <el-select filterable clearable style="width: 180px" v-model="form.unitId" placeholder="请选择">
                <el-option v-for="dict in unitNameobj" :key="dict.id" :label="dict.unitName" :value="dict.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="线名" prop="railwayId">
              <el-select filterable clearable style="width: 180px" v-model="form.railwayId" placeholder="请选择" @change="getsdhData">
                <el-option v-for="dict in railwayNameobj" :key="dict.id" :label="dict.railwayName" :value="dict.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="隧道号" prop="tunnelId">
              <el-select filterable clearable style="width: 180px" v-model="form.tunnelId" placeholder="请选择" @change="getsdName">
                <el-option v-for="dict in tunnelCodeList" :key="dict.id" :label="dict.tunnelCode" :value="dict.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="隧道名" prop="tunnelName">
              <el-input disabled v-model="form.tunnelName" placeholder="请输入隧道名" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="节段单元编码" prop="segmentUnitId">
              <el-select filterable clearable style="width: 180px" v-model="form.segmentUnitId" placeholder="请选择" @change="getSegmentUnit">
                <el-option v-for="dict in segmentUnitList" :key="dict.id" :label="dict.segmentUnitCode" :value="dict.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="节段起点里程" prop="segmentStartingMileage">
              <el-input disabled v-model="form.segmentStartingMileage" placeholder="请输入节段起点里程" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="节段终点里程" prop="segmentDestinationMileage">
              <el-input disabled v-model="form.segmentDestinationMileage" placeholder="请输入节段终点里程" />
            </el-form-item>
          </el-col>
        </el-row>
        <div class="divflex">
          <span class="leftx"></span>
          <span class="mainz">特性</span>
          <span class="rightx"></span>
        </div>
        <el-row>
          <el-col :span="8">
            <el-form-item label="初期支护" prop="initialStageShoring">
              <el-radio-group v-model="form.initialStageShoring">
                <el-radio-button label="无">无</el-radio-button>
                <el-radio-button label="有">有</el-radio-button>
              </el-radio-group>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="喷射混凝土强度" prop="concreteStrength">
              <el-input v-model="form.concreteStrength" placeholder="请输入喷射混凝土强度" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="喷射混凝土厚度" prop="concreteThickness">
              <el-input type="number" v-model="form.concreteThickness" placeholder="请输入喷射混凝土厚度" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="锚杆类型" prop="wanchorRodTypeId">
              <el-select filterable clearable style="width: 180px" v-model="form.wanchorRodTypeId" placeholder="请选择">
                <el-option v-for="dict in wanchorRodTypeIdList" :key="dict.id" :label="dict.propertyName" :value="dict.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="锚杆直径(mm)" prop="wanchorRodDiameter">
              <el-input type="number" v-model="form.wanchorRodDiameter" placeholder="请输入锚杆直径" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="锚杆长度" prop="wanchorRodLength">
              <el-input type="number" v-model="form.wanchorRodLength" placeholder="请输入锚杆长度" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="环向间距(m)" prop="loopInterval">
              <el-input type="number" v-model="form.loopInterval" placeholder="请输入环向间距" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="纵向间距(m)" prop="lengthwaysLength">
              <el-input type="number" v-model="form.lengthwaysLength" placeholder="请输入纵向间距" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="钢筋网直径(mm)" prop="rebarDiameter">
              <el-input type="number" v-model="form.rebarDiameter" placeholder="请输入钢筋网直径" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="网眼尺寸" prop="meshSize">
              <el-input v-model="form.meshSize" placeholder="请输入网眼尺寸" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="钢架类型" prop="steelFrameTypeId">
              <el-select filterable clearable style="width: 180px" v-model="form.steelFrameTypeId" placeholder="请选择">
                <el-option v-for="dict in steelFrameTypeIdList" :key="dict.id" :label="dict.propertyName" :value="dict.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="钢架材质" prop="steelFrameTextureId">
              <el-select filterable clearable style="width: 180px" v-model="form.steelFrameTextureId" placeholder="请选择">
                <el-option v-for="dict in steelFrameTextureIdList" :key="dict.id" :label="dict.propertyName" :value="dict.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="钢架间距" prop="steelFrameLength">
              <el-input type="number" v-model="form.steelFrameLength" placeholder="请输入钢架间距" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="节段衬砌类型" prop="segmentLiningTypeId">
              <el-input disabled v-model="form.segmentLiningTypeId" placeholder="请输入节段衬砌类型" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="节段衬砌式样" prop="segmentLiningStyleId">
              <el-input disabled v-model="form.segmentLiningStyleId" placeholder="请输入节段衬砌式样" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="节段衬砌图号" prop="segmentLiningNum">
              <el-input disabled v-model="form.segmentLiningNum" placeholder="请输入节段衬砌图号" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="拱圈材质" prop="archRingTextureId">
              <el-select filterable clearable style="width: 180px" v-model="form.archRingTextureId" placeholder="请选择">
                <el-option v-for="dict in archRingTextureIdList" :key="dict.id" :label="dict.propertyName" :value="dict.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="拱圈厚度" prop="archRingThickness">
              <el-input type="number" v-model="form.archRingThickness" placeholder="请输入拱圈材质厚度" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="边墙材质" prop="flankWallTextureId">
              <el-select filterable clearable style="width: 180px" v-model="form.flankWallTextureId" placeholder="请选择">
                <el-option v-for="dict in flankWallTextureIdList" :key="dict.id" :label="dict.propertyName" :value="dict.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="边墙厚度" prop="flankWallThickness">
              <el-input type="number" v-model="form.flankWallThickness" placeholder="请输入边墙厚度" />
            </el-form-item>
          </el-col>
        </el-row>
        <div class="divflex">
          <span class="leftx"></span>
          <span class="mainz">健康值</span>
          <span class="rightx"></span>
        </div>
        <el-row>
          <el-col :span="8">
            <el-form-item label="健康值" prop="healthIndex">
              <el-input v-model="form.healthIndex" placeholder="请输入健康值" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="隐患等级" prop="hiddenDangerLevel">
              <el-input v-model="form.hiddenDangerLevel" placeholder="请输入隐患等级" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="存在问题" prop="existingProblem">
              <el-input v-model="form.existingProblem" placeholder="请输入存在问题" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="病害整治情况" prop="diseaseControlSituation">
              <el-input v-model="form.diseaseControlSituation" placeholder="请输入病害整治情况" /> </el-form-item
          ></el-col>
          <el-col :span="8">
            <el-form-item label="病害整治年份" prop="yearOfDiseaseControl">
              <el-input v-model="form.yearOfDiseaseControl" placeholder="请输入病害整治年份" /> </el-form-item
          ></el-col>
          <el-col :span="8">
            <el-form-item label="设备使用频率" prop="equipmentUsageFrequency">
              <el-input v-model="form.equipmentUsageFrequency" placeholder="请输入设备使用频率" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="设备综合效率(OEE)" prop="overallEquipmentEfficiency">
              <el-input v-model="form.overallEquipmentEfficiency" placeholder="请输入设备综合效率(OEE)" /> </el-form-item
          ></el-col>
          <el-col :span="8">
            <el-form-item label="平均无故障工作时间(MTTF)" prop="meanTimeToFailure">
              <el-input v-model="form.meanTimeToFailure" placeholder="请输入平均无故障工作时间(MTTF)" /> </el-form-item
          ></el-col>
          <el-col :span="8">
            <el-form-item label="平均修复时间(MTTR)" prop="meanTimeToRepair">
              <el-input v-model="form.meanTimeToRepair" placeholder="请输入平均修复时间(MTTR)" />
            </el-form-item>
          </el-col>
        </el-row>
        <div class="divflex">
          <span class="leftx"></span>
          <span class="mainz">管理</span>
          <span class="rightx"></span>
        </div>
        <el-row>
          <el-col :span="8">
            <el-form-item label="区段" prop="sector">
              <el-input v-model="form.sector" placeholder="请输入区段" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="工区" prop="workArea">
              <el-input v-model="form.workArea" placeholder="请输入工区" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="人员" prop="personnel">
              <el-input v-model="form.personnel" placeholder="请输入人员" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="包保责任人" prop="personInCharge">
              <el-input v-model="form.personInCharge" placeholder="请输入包保责任人" /> </el-form-item
          ></el-col>
          <el-col :span="8">
            <el-form-item label="备注" prop="comment">
              <el-input v-model="form.comment" type="textarea" placeholder="请输入内容" />
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div class="divflex" v-if="parameterShow">
        <span class="leftx"></span>
        <span class="mainz">修改历史</span>
        <span class="rightx"></span>
      </div>
      <el-table :data="allBridgeChangeData" border height="300px" v-if="parameterShow">
        <el-table-column label="序号" type="index" width="80" />
        <el-table-column label="指标名" prop="property" min-width="80"></el-table-column>
        <el-table-column label="变更前指标值" prop="oldValue" min-width="80"></el-table-column>
        <el-table-column label="变更后指标值" prop="newValue" min-width="80"></el-table-column>
        <el-table-column label="变更时间" prop="createTime" min-width="80"></el-table-column>
        <el-table-column label="操作用户名" prop="user" min-width="80"></el-table-column>
      </el-table>
      <template #footer>
        <div class="dialog-footer">
          <el-button type="primary" @click="submitForm">确 定</el-button>
          <el-button @click="cancel">取 消</el-button>
        </div>
      </template>
    </el-dialog>
    <el-dialog title="设备问题" v-model="equipmentproblemShow" width="1200px" append-to-body>
      <p>故障</p>
      <div>
        <el-form :model="faultForm" ref="queryRef" :inline="true">
          <el-form-item label="故障时间">
            <el-select v-model="faultForm.railwayName" placeholder="线名" clearable style="width: 140px">
              <el-option v-for="dict in railwayNameobj" :key="dict.railwayName" :label="dict.railwayName" :value="dict.id" />
            </el-select>
          </el-form-item>
          <el-form-item label="">
            <el-button type="primary" @click="faultSeek" style="width: 90px">查找</el-button>
            <el-button @click="faultClear" style="width: 90px">清空</el-button>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="" style="width: 90px">新增</el-button>
          </el-form-item>
        </el-form>
        <el-table :data="faultForm.tabledata" height="57vh" border>
          <el-table-column type="selection" label="全选" width="50" />
          <el-table-column label="故障编码" type="index" width="80" />
          <el-table-column label="故障描述" prop="railwayName" min-width="80" />
          <el-table-column label="故障类别" prop="lineType" min-width="80" />
          <el-table-column label="故障时间" prop="centreMileage" min-width="80" />
          <el-table-column label="处理状态" prop="startingMileage" min-width="80" />
          <el-table-column label="维修方案" prop="destinationMileage" min-width="80"></el-table-column>
          <el-table-column label="维修日期" prop="bridgeId" min-width="80"></el-table-column>
          <el-table-column label="作业流程" prop="bridgeName" min-width="80"></el-table-column>
          <el-table-column label="维修负责人" prop="bridgeSpanNum" min-width="80"></el-table-column>
          <el-table-column label="故障处理耗时" prop="kingpostNum" min-width="80"></el-table-column>
          <el-table-column label="故障来源" prop="supportNum" min-width="80"></el-table-column>
          <el-table-column label="上报用户" prop="foundationPilesNum" min-width="80"></el-table-column>
          <el-table-column label="操作" min-width="100">
            <template #default="scope">
              <div class="buttontext">
                <el-button link type="primary" icon="el-icon-edit">修改</el-button>
                <el-button link type="primary">删除</el-button>
              </div>
            </template>
          </el-table-column>
        </el-table>
      </div>
      <p>超限</p>
      <div>
        <el-form :model="faultForm" ref="queryRef" :inline="true">
          <el-form-item label="更新时间">
            <el-select v-model="faultForm.railwayName" placeholder="线名" clearable style="width: 140px">
              <el-option v-for="dict in railwayNameobj" :key="dict.railwayName" :label="dict.railwayName" :value="dict.id" />
            </el-select>
          </el-form-item>
          <el-form-item label="">
            <el-button type="primary" @click="faultSeek" style="width: 90px">查找</el-button>
            <el-button @click="faultClear" style="width: 90px">清空</el-button>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="" style="width: 90px">新增</el-button>
          </el-form-item>
        </el-form>
        <el-table :data="railList" height="57vh" border>
          <el-table-column type="selection" label="全选" width="50" />
          <el-table-column label="序号" type="index" width="80" />
          <el-table-column label="标示位置-公里" prop="railwayName" min-width="80" />
          <el-table-column label="标示位置-米" prop="lineType" min-width="80" />
          <el-table-column label="线路特征" prop="centreMileage" min-width="80" />
          <el-table-column label="处理结果" prop="startingMileage" min-width="80" />
          <el-table-column label="处理时间" prop="destinationMileage" min-width="80"></el-table-column>
          <el-table-column label="天窗命令号" prop="bridgeId" min-width="80"></el-table-column>
          <el-table-column label="负责人" prop="bridgeName" min-width="80"></el-table-column>
          <el-table-column label="操作" min-width="100">
            <template #default="scope">
              <div class="buttontext">
                <el-button link type="primary" icon="el-icon-edit">修改</el-button>
                <el-button link type="primary">删除</el-button>
              </div>
            </template>
          </el-table-column>
        </el-table>
      </div>
      <p>告警</p>
      <div>
        <el-form :model="faultForm" ref="queryRef" :inline="true">
          <el-form-item label="报警时间">
            <el-select v-model="faultForm.railwayName" placeholder="线名" clearable style="width: 140px">
              <el-option v-for="dict in railwayNameobj" :key="dict.railwayName" :label="dict.railwayName" :value="dict.id" />
            </el-select>
          </el-form-item>
          <el-form-item label="">
            <el-button type="primary" @click="faultSeek" style="width: 90px">查找</el-button>
            <el-button @click="faultClear" style="width: 90px">清空</el-button>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="" style="width: 90px">新增</el-button>
          </el-form-item>
        </el-form>
        <el-table :data="railList" height="57vh" border>
          <el-table-column type="selection" label="全选" width="50" />
          <el-table-column label="报警序号" type="index" width="80" />
          <el-table-column label="标示位置-公里" prop="railwayName" min-width="80" />
          <el-table-column label="标示位置-米" prop="lineType" min-width="80" />
          <el-table-column label="线路特征" prop="centreMileage" min-width="80" />
          <el-table-column label="处理结果" prop="startingMileage" min-width="80" />
          <el-table-column label="处理时间" prop="destinationMileage" min-width="80"></el-table-column>
          <el-table-column label="天窗命令号" prop="bridgeId" min-width="80"></el-table-column>
          <el-table-column label="负责人" prop="bridgeName" min-width="80"></el-table-column>
          <el-table-column label="操作" min-width="100">
            <template #default="scope">
              <div class="buttontext">
                <el-button link type="primary" icon="el-icon-edit">修改</el-button>
                <el-button link type="primary">删除</el-button>
              </div>
            </template>
          </el-table-column>
        </el-table>
      </div>
      <p>在线监测/控制</p>
    </el-dialog>
    <el-dialog title="业财" v-model="businessFinanceShow" width="1200px" append-to-body>
      <p>
        <span>经济投入</span>
        <el-button link type="primary" @click="addEconomyTableData(scope.row.id)">新增物资</el-button>
      </p>
      <el-table :data="economyTableData" height="300px" border>
        <el-table-column label="编号" type="index" width="80" />
        <el-table-column label="物资名称" prop="railwayName" />
        <el-table-column label="物资类型" prop="lineType" />
        <el-table-column label="物资单价" prop="centreMileage" />
        <el-table-column label="采购数量" prop="startingMileage" />
        <el-table-column label="采购总价" prop="destinationMileage" />
      </el-table>
      <p>
        <span>财务台账</span>
        <el-button link type="primary" @click="handDeletez(scope.row.id)">新增物资</el-button>
      </p>
      <el-table :data="ledgerTabledata" height="300px" border>
        <el-table-column label="编号" type="index" width="80" />
        <el-table-column label="物资名称" prop="railwayName" />
        <el-table-column label="物资类型" prop="lineType" />
        <el-table-column label="物资单价" prop="centreMileage" />
        <el-table-column label="库存数量" prop="startingMileage" />
        <el-table-column label="库存总价" prop="destinationMileage" />
        <el-table-column label="消耗标准" prop="centreMileage" />
        <el-table-column label="实际消耗量" prop="startingMileage" />
        <el-table-column label="消耗总价" prop="destinationMileage" />
      </el-table>
    </el-dialog>
    <el-dialog draggable title="资料" v-model="meansopen" width="1300px" append-to-body @close="closefun">
      <means :forma="formam" parentName="拱墙衬砌" v-if="meansopen"></means>
    </el-dialog>
  </div>
</template>

<script setup name="Bridge">
import means from "@/components/railmodle/means.vue";
import { useContent } from "@/mixin/index.js";
const { meansopen, meansFun, formam, closefun, resumeUpdate, deviceProblem, businessFinance } = useContent();
import {
  selectManTunnelSegmentArchWallLiningList,
  addinsertManTunnelSegmentArchWallLining,
  editManTunnelSegmentArchWallLining,
  deleteManTunnelSegmentArchWallLiningById,
  selectManTunnelSegmentArchWallLiningById,
  getselectManTunnelEditRecordList,
  selectManTunnelOverviewList,
  selectManTunnelSegmentUnitList,
  getSelectListApi,
} from "@/api/main/bridge.js";
import { selectManBasicUnitListapi, selectManBasicRailwayListapi, selectManBasicprogressTypeListapi } from "@/api/main/api.js";
import { ElMessage } from "element-plus";
import { reactive, ref, toRefs } from "vue";
const { proxy } = getCurrentInstance();
const title = ref("新增");
const loading = ref(true);
const open = ref(false);
const equipmentproblemShow = ref(false);
const businessFinanceShow = ref(false);

const parameterShow = ref(false);

defineExpose({ getList });
const emit = defineEmits(["parentCount"]);

const data = reactive({
  faultForm: {
    railwayName: "",
    tabledata: [],
  },
  railList: [],
  selecttabList: [],
  //单位名称列表数据
  unitNameobj: [],
  //线名数据列表
  railwayNameobj: [],
  // 隧道号
  tunnelCodeList: [],
  // 节段单元编码
  segmentUnitList: [],
  // 锚杆类型
  wanchorRodTypeIdList: [],
  // 钢架类型
  steelFrameTypeIdList: [],
  // 钢架材质
  steelFrameTextureIdList: [],
  // 拱圈材质
  archRingTextureIdList: [],
  // 边墙材质
  flankWallTextureIdList: [],
  form: {},
  queryParams: {
    pageNum: "1",
    pageSize: "10",
    railwayName: "",
    tunnelId: "",
    segmentUnitCode: "",
    segmentStartingMileageStr: "",
    segmentDestinationMileageStr: "",
  },
  rules: {
    unitId: [{ required: true, message: "单位名称不能为空", trigger: ["blur", "change"] }],
    railwayId: [{ required: true, message: "线名不能为空", trigger: ["blur", "change"] }],
    tunnelId: [{ required: true, message: "隧道号不能为空", trigger: ["blur", "change"] }],
    segmentUnitId: [{ required: true, message: "节段单元编码不能为空", trigger: ["blur", "change"] }],
    initialStageShoring: [{ required: true, message: "初期维护不能为空", trigger: ["blur", "change"] }],
    archRingTextureId: [{ required: true, message: "拱圈材质不能为空", trigger: ["blur", "change"] }],
    archRingThickness: [{ required: true, message: "拱圈材质厚度不能为空", trigger: ["blur", "change"] }],
    flankWallTextureId: [{ required: true, message: "边墙材质不能为空", trigger: ["blur", "change"] }],
    flankWallThickness: [{ required: true, message: "边墙厚度不能为空", trigger: ["blur", "change"] }],
  },
  allBridgeChangeData: [],
  economyTableData: [],
  ledgerTabledata: [],
});

const {
  faultForm,
  queryParams,
  railList,
  selecttabList,
  form,
  rules,
  unitNameobj,
  railwayNameobj,
  bridgeList,
  tunnelCodeList,
  segmentUnitList,
  wanchorRodTypeIdList,
  steelFrameTypeIdList,
  steelFrameTextureIdList,
  archRingTextureIdList,
  flankWallTextureIdList,
  allBridgeChangeData,
  economyTableData,
  ledgerTabledata,
} = toRefs(data);

const pageNumparent = ref(undefined);
const pageSizeparent = ref(undefined);

function init() {
  getLineDataList();
  getUnitDataList();
  getsdhData();
  getmglxData();
  getgjlxData();
  getgjczData();
  getgqczData();
  getbqczData();
  getList();
}
init();
/** 查询列表 */
function getList(pageNum, pageSize) {
  loading.value = true;
  if (pageNum != undefined || pageSize != undefined) {
    pageNumparent.value = pageNum;
    pageSizeparent.value = pageSize;
    queryParams.value.pageNum = pageNum == undefined ? 1 : pageNum;
    queryParams.value.pageSize = pageSize == undefined ? 10 : pageSize;
  } else {
    queryParams.value.pageNum = pageNumparent.value == undefined ? "1" : pageNumparent.value;
    queryParams.value.pageSize = pageSizeparent.value == undefined ? "10" : pageSizeparent.value;
  }
  selectManTunnelSegmentArchWallLiningList({
    pageNum: queryParams.value.pageNum,
    pageSize: queryParams.value.pageSize,
    railwayId: queryParams.value.railwayName,
    tunnelCode: queryParams.value.tunnelId,
    segmentUnitCode: queryParams.value.segmentUnitCode,
    segmentStartingMileage: queryParams.value.segmentStartingMileageStr,
    segmentDestinationMileage: queryParams.value.segmentDestinationMileageStr,
  }).then((res) => {
    if (res.code == 200) {
      data.railList = res.data;
    }
    loading.value = false;
    emit("parentCount", res.count);
  });
}
/** 查询基础数据-线名数据列表 */
function getLineDataList() {
  selectManBasicRailwayListapi({ hasDelete: 0 }).then((res) => {
    if (res.code == 200) {
      railwayNameobj.value = res.data;
      console.log(railwayNameobj.value);
    }
  });
}
/** 查询基础数据-单位数据列表 */
function getUnitDataList() {
  selectManBasicUnitListapi({ hasDelete: 0 }).then((res) => {
    if (res.code == 200) {
      unitNameobj.value = res.data;
      console.log(unitNameobj.value);
    }
  });
}
/** 查询-隧道号数据列表 */
function getsdhData() {
  selectManTunnelOverviewList({
    railwayId: form.value.railwayId,
  }).then((res) => {
    if (res.code == 200) {
      tunnelCodeList.value = res.data;
      form.value.tunnelId = "";
      form.value.tunnelName = "";
      form.value.segmentUnitId = "";
      form.value.segmentStartingMileage = "";
      form.value.segmentDestinationMileage = "";
      form.value.segmentRailLiningNum = "";
    }
  });
  selectManTunnelSegmentUnitList({
    tunnelId: form.value.tunnelId,
  }).then((res) => {
    if (res.code == 200) {
      segmentUnitList.value = res.data;
    }
  });
}

/** 查询-锚杆类型数据列表 */
function getmglxData() {
  getSelectListApi({ propertyType: "锚杆类型" }).then((res) => {
    if (res.code == 200) {
      wanchorRodTypeIdList.value = res.data;
    }
  });
}

/** 查询-钢架类型数据列表 */
function getgjlxData() {
  getSelectListApi({ propertyType: "钢架类型" }).then((res) => {
    if (res.code == 200) {
      steelFrameTypeIdList.value = res.data;
    }
  });
}

/** 查询-钢架材质数据列表 */
function getgjczData() {
  getSelectListApi({ propertyType: "钢架材质" }).then((res) => {
    if (res.code == 200) {
      steelFrameTextureIdList.value = res.data;
    }
  });
}

/** 查询-拱圈材质数据列表 */
function getgqczData() {
  getSelectListApi({ propertyType: "拱圈材质" }).then((res) => {
    if (res.code == 200) {
      archRingTextureIdList.value = res.data;
    }
  });
}

/** 查询-边墙材质数据列表 */
function getbqczData() {
  getSelectListApi({ propertyType: "边墙材质" }).then((res) => {
    if (res.code == 200) {
      flankWallTextureIdList.value = res.data;
    }
  });
}

/* 删除单行数据 */
function handDelete(row) {
  deleteManTunnelSegmentArchWallLiningById({ id: row }).then((res) => {
    if (res.code == 200) {
      proxy.$modal.msgSuccess("删除成功");
      getList();
    }
  });
}

/** 重置操作表单 */
function reset() {
  form.value = {
    id: "",
    unitId: "",
    railwayId: "",
    tunnelId: "",
    tunnelName: "",
    segmentUnitId: "",
    segmentStartingMileage: "",
    segmentDestinationMileage: "",
    initialStageShoring: "",
    concreteStrength: "",
    concreteThickness: "",
    wanchorRodTypeId: "",
    wanchorRodDiameter: "",
    wanchorRodLength: "",
    loopInterval: "",
    lengthwaysLength: "",
    rebarDiameter: "",
    meshSize: "",
    steelFrameTypeId: "",
    steelFrameTextureId: "",
    steelFrameLength: "",
    segmentLiningTypeId: "",
    segmentLiningStyleId: "",
    segmentLiningStyleId: "",
    archRingTextureId: "",
    archRingThickness: "",
    flankWallTextureId: "",
    flankWallThickness: "",
    healthIndex: "",
    hiddenDangerLevel: "",
    existingProblem: "",
    diseaseControlSituation: "",
    yearOfDiseaseControl: "",
    equipmentUsageFrequency: "",
    overallEquipmentEfficiency: "",
    meanTimeToFailure: "",
    meanTimeToRepair: "",
    sector: "",
    workArea: "",
    personnel: "",
    personInCharge: "",
    comment: "",
  };
  proxy.resetForm("userRef");
}
/** 新增按钮操作 */
function handleAdd() {
  reset();
  open.value = true;
  title.value = "新增";
  parameterShow.value = false;
}
/** 提交按钮 */
function submitForm() {
  proxy.$refs["userRef"].validate((valid) => {
    if (valid) {
      //单位名称列表数据
      unitNameobj.value.forEach((item) => {
        if (form.value.unitId == item.id) {
          form.value.unitName = item.unitName;
        }
      });
      //线名数据列表
      railwayNameobj.value.forEach((item) => {
        if (form.value.railwayId == item.id) {
          form.value.railwayName = item.railwayName;
        }
      });
      // 节段单元编码
      segmentUnitList.value.forEach((item) => {
        if (form.value.segmentUnitId == item.id) {
          form.value.segmentUnitCode = item.segmentUnitCode;
        }
      });
      // 锚杆类型
      wanchorRodTypeIdList.value.forEach((item) => {
        if (form.value.wanchorRodTypeId == item.id) {
          form.value.wanchorRodType = item.propertyName;
        }
      });
      // 钢架类型
      steelFrameTypeIdList.value.forEach((item) => {
        if (form.value.steelFrameTypeId == item.id) {
          form.value.steelFrameType = item.propertyName;
        }
      });
      // 钢架材质
      steelFrameTextureIdList.value.forEach((item) => {
        if (form.value.steelFrameTextureId == item.id) {
          form.value.steelFrameTexture = item.propertyName;
        }
      });
      // 拱圈材质
      archRingTextureIdList.value.forEach((item) => {
        if (form.value.archRingTextureId == item.id) {
          form.value.archRingTexture = item.propertyName;
        }
      });
      // 边墙材质
      flankWallTextureIdList.value.forEach((item) => {
        if (form.value.flankWallTextureId == item.id) {
          form.value.flankWallTexture = item.propertyName;
        }
      });
      form.value.startingMileage = Math.round(form.value.startingMileage * 1000000) / 1000000;
      form.value.destinationMileage = Math.round(form.value.destinationMileage * 1000000) / 1000000;
      form.value.centreMileage = Math.round(form.value.centreMileage * 1000000) / 1000000;
      if (form.value.startingMileage > form.value.destinationMileage) {
        proxy.$modal.msgError(`起始里程应该小于等于终点里程`);
        return false;
      }
      if (form.value.id) {
        editManTunnelSegmentArchWallLining(form.value).then((res) => {
          proxy.$modal.msgSuccess("修改成功");
          open.value = false;
          getList();
        });
      } else {
        addinsertManTunnelSegmentArchWallLining(form.value).then((res) => {
          proxy.$modal.msgSuccess("新增成功");
          open.value = false;
          getList();
        });
      }
    }
  });
}
/** 取消按钮 */
function cancel() {
  open.value = false;
  reset();
}
function selectiontab(row) {
  selecttabList.value = row;
}
// 导出
function handleQuery() {
  const arrid = [];
  for (let i = 0; i < selecttabList.value.length; i++) {
    arrid.push(selecttabList.value[i].id);
  }
  proxy.download1("/facility-manage/lining/exportExcel", arrid, `拱墙衬砌${new Date().getTime()}.xlsx`);
}
//重置
function resetQuery() {
  queryParams.value = {
    railwayName: "",
    tunnelId: "",
    segmentUnitCode: "",
    segmentStartingMileageStr: "",
    segmentDestinationMileageStr: "",
  };
  getList();
}
// 查看参数
function parameter(rows) {
  selectManTunnelSegmentArchWallLiningById({
    id: rows.id,
  }).then((res) => {
    form.value = res.data;
    getselectManTunnelEditRecordList({
      tunnelId: rows.id,
    }).then((res1) => {
      allBridgeChangeData.value = res1.data;
      title.value = "参数";
      open.value = true;
      parameterShow.value = true;
    });
  });
}
// 获取隧道名
function getsdName(bridgeName) {
  form.value.tunnelName = "";
  form.value.segmentUnitId = "";
  form.value.segmentStartingMileage = "";
  form.value.segmentDestinationMileage = "";
  form.value.segmentRailLiningNum = "";
  if (form.value.railwayId) {
    tunnelCodeList.value.forEach((item) => {
      if (form.value.tunnelId == item.id) {
        form.value.tunnelName = item.tunnelName;
      }
    });
    selectManTunnelSegmentUnitList({
      tunnelId: form.value.tunnelId,
    }).then((res) => {
      if (res.code == 200) {
        segmentUnitList.value = res.data;
      }
    });
  } else {
    ElMessage.error("请先选择线名");
    form.value.tunnelId = "";
  }
}
// 获取节段单元信息
function getSegmentUnit() {
  if (form.value.tunnelId) {
    form.value.segmentStartingMileage = "";
    form.value.segmentDestinationMileage = "";
    form.value.segmentRailLiningNum = "";
    segmentUnitList.value.forEach((item) => {
      if (form.value.segmentUnitId == item.id) {
        form.value.segmentStartingMileage = item.segmentStartingMileage;
        form.value.segmentDestinationMileage = item.segmentDestinationMileage;
        form.value.segmentLiningTypeId = item.segmentLiningTypeId;
        form.value.segmentLiningStyleId = item.segmentLiningStyleId;
        form.value.segmentLiningNum = item.segmentLiningNum;
      }
    });
  } else {
    ElMessage.error("请先选择隧道名");
    form.value.segmentUnitId = "";
  }
}
// // 设备
// function equipmentproblem() {
//   equipmentproblemShow.value = true;
// }
// // 业财
// function businessFinance() {
//   businessFinanceShow.value = true;
// }
</script>

<style scoped lang="scss">
.divflex {
  height: 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;

  .leftx {
    width: 45%;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: #e8e8e8;
    margin-top: 3px;
  }

  .mainz {
    font-weight: 400;
    font-style: normal;
    font-size: 16px;
    line-height: 24px;
  }

  .rightx {
    width: 45%;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: #e8e8e8;
    margin-top: 3px;
  }
}

.buttontext {
  .el-button:hover {
    // text-decoration: line-through !important;
  }
}

.el-form--inline .el-form-item.formitemcla {
  margin-right: 5px !important;
}
</style>
